package com.cyj.controller;

import com.cyj.mapper.UserMapper;
import com.cyj.pojo.User;
import com.cyj.service.UserService;

import com.cyj.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.thymeleaf.util.StringUtils;

import javax.servlet.http.HttpServletResponse;
import java.net.http.HttpResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@CrossOrigin
@RequestMapping("user")
public class UserController {
    @Autowired
    UserService userService;
//    分页查询
    @GetMapping("findByPage")
    public Map<String,Object> findByPage(Integer pageNow, Integer pageSize){
        Map<String,Object> result=new HashMap<String, Object>();
        pageNow=pageNow==null?1:pageNow;
        pageSize=pageSize==null?4:pageSize;
        List<User> users=userService.findByPage(pageNow,pageSize);
        Long totals=userService.findTotals();
        result.put("users",users);
        result.put("total",totals);
        return result;
    }
    @GetMapping("findAll")
    public List<User> findAll(){

        return userService.findAll();
    }
//    @GetMapping("findAll")
//    public Map<String,Object> findAll(Integer page, Integer rows){
//        HashMap <String, Object>map=new HashMap<>();
//        List<User> results=userService.findAll();
//        map.put("total",10);
//        map.put("totalPage",1);
//        map.put("page",page);
//        map.put("results",results);
//        return map;
//    }
@PostMapping ("add")
public Result save(@RequestBody User user){
    Result result=new Result();
    String id=user.getId()+"";
    System.out.println(
            "用户="+user
    );
    try{
//        userService.save(user);
//        if(StringUtils.isEmpty(id)){
        if(user.getId()==0){
            userService.save(user);
            result.setMsg("用户保存信息成功");
        }else {
            System.out.println("开始修改");
            userService.update(user);
            result.setMsg("用户修改信息成功");
        }

    }catch (Exception e){
        result.setStatus(false);
        result.setMsg("保存失败，请稍后再试试");
    }
    return result;

}

//@RequestMapping("add")
//    public Map<String,Object> add(@RequestBody User user){
//    System.out.println("用户添加==》"+user);
////    //解决跨域请求问题
////        response.setHeader("Access-Control-Allow-Origin","*");
//        HashMap <String, Object>map=new HashMap<>();
//        try{
//            userService.save(user);
//            map.put("success",true);
//            map.put("msg","添加用户信息成功");
//        }catch (Exception e){
//            e.printStackTrace();
//            map.put("success",false);
//            map.put("msg","添加用户信息失败");
//        }
//        return map;
//    }
@GetMapping  ("delete")
public Result delete(String id){
    System.out.println("id="+id);
    Result result=new Result();
    try{
        userService.delete(id);
        result.setMsg("用户删除信息成功");
    }catch (Exception e){
        result.setStatus(false);
        result.setMsg("删除失败，请稍后再试试");
    }
    return result;

}
//    @GetMapping("delete")
//    public Map<String,Object> delete(String id){
//        System.out.println("删除id==>"+id);
//        HashMap <String, Object>map=new HashMap<>();
//        try{
//            userService.delete(id);
//            map.put("success",true);
//            map.put("msg","删除用户信息成功");
//        }catch (Exception e){
//            e.printStackTrace();
//            map.put("success",false);
//            map.put("msg","删除用户信息失败");
//        }
//        return map;
//    }
    @GetMapping("findOne")
    public User findOne(String id){
        System.out.println("找到id==>"+id);
        return userService.findById(id);
    }
//    @PostMapping ("update")
//    public Result update(@RequestBody User user){
//        Result result=new Result();
//        try{
//            userService.update(user);
//            result.setMsg("用户修改信息成功");
//        }catch (Exception e){
//            result.setStatus(false);
//            result.setMsg("修改失败，请稍后再试试");
//        }
//        return result;
//
//    }
//    @RequestMapping("update")
//    public Map<String,Object> update(@RequestBody User user){
//
//        HashMap <String, Object>map=new HashMap<>();
//        try{
//            userService.update(user);
//            map.put("success",true);
//            map.put("msg","更新用户信息成功");
//        }catch (Exception e){
//            e.printStackTrace();
//            map.put("success",false);
//            map.put("msg","更新用户信息失败");
//        }
//        return map;
//    }

}
